package com.niuxiaofa.newlaw.Network;


import com.niuxiaofa.newlaw.Bean.AdvisoryTagBean;
import com.niuxiaofa.newlaw.Bean.AreaCodeBean;
import com.niuxiaofa.newlaw.Bean.BannerBean;
import com.niuxiaofa.newlaw.Bean.BaseBean;
import com.niuxiaofa.newlaw.Bean.BlindboxBuyInfoBean;
import com.niuxiaofa.newlaw.Bean.ByUserBean;
import com.niuxiaofa.newlaw.Bean.CourseInfoBean;
import com.niuxiaofa.newlaw.Bean.CourseLabelListBean;
import com.niuxiaofa.newlaw.Bean.DemandTagsBean;
import com.niuxiaofa.newlaw.Bean.ExpertBean;
import com.niuxiaofa.newlaw.Bean.FollowFansBean;
import com.niuxiaofa.newlaw.Bean.HeatBean;
import com.niuxiaofa.newlaw.Bean.InviteBean;
import com.niuxiaofa.newlaw.Bean.LocalCitiesBean;
import com.niuxiaofa.newlaw.Bean.LocalProvincesBean;
import com.niuxiaofa.newlaw.Bean.MemberFragmentInfoBean;
import com.niuxiaofa.newlaw.Bean.MemberFragmentRecordBean;
import com.niuxiaofa.newlaw.Bean.MonitorInfoBean;
import com.niuxiaofa.newlaw.Bean.NewInfoBean;
import com.niuxiaofa.newlaw.Bean.NewListBean;
import com.niuxiaofa.newlaw.Bean.NewOrderBean;
import com.niuxiaofa.newlaw.Bean.QueryVideoListByLableBean;
import com.niuxiaofa.newlaw.Bean.QuestionBankBean;
import com.niuxiaofa.newlaw.Bean.RankingBean;
import com.niuxiaofa.newlaw.Bean.SignPageBean;
import com.niuxiaofa.newlaw.Bean.TaskBean;
import com.niuxiaofa.newlaw.Bean.TimeofAssessmentBean;
import com.niuxiaofa.newlaw.Bean.UserInfoBean;
import com.niuxiaofa.newlaw.Bean.UserLoginBean;
import com.niuxiaofa.newlaw.Bean.VideoListBean;
import com.niuxiaofa.newlaw.Bean.VideosBean;

import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface ApiService {


    @GET("nationalmobileprefix/getAreaCode")
    Call<AreaCodeBean> getAreaCode();


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("login")
    Call<UserLoginBean> login(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("smsCode")
    Call<BaseBean> smsCode(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("checkCode")
    Call<BaseBean> checkCode(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("news/bannerListByType")
    Call<BannerBean> bannerListByType(@Body RequestBody body);

    @GET("news/newOrder")
    Call<NewOrderBean> newOrder();

    @GET("member/userInfo")
    Call<UserInfoBean> userInfo();

    @GET("news/newList")
    Call<NewListBean> newList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    @GET("advisoryTag/{parentId}")
    Call<AdvisoryTagBean> advisoryTag(@Path("parentId") String parentId);

    @GET("demand/tags")
    Call<DemandTagsBean> advisoryTag();

    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("weChat/getLocalProvinces")
    Call<LocalProvincesBean> getLocalProvinces();

    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("weChat/getLocalCities")
    Call<LocalCitiesBean> getLocalCities(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("expert/getExpert")
    Call<ExpertBean> getExpert(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("sign/getSignPage")
    Call<SignPageBean> getSignPage(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @GET("sign/setSignDate")
    Call<BaseBean> setSignDate();


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @GET("sign/getSignNum")
    Call<BaseBean> getSignNum();


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @GET("assessment/getTimeofAssessment")
    Call<TimeofAssessmentBean> getTimeofAssessment();


    @GET("dynamic/community/byUser")
    Call<ByUserBean> byUser(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);



    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("dynamic/community")
    Call<BaseBean> community(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("video/uploadVideo")
    Call<BaseBean> uploadVideo(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("video/mineVideos")
    Call<VideosBean> mineVideos(@Body RequestBody body);


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("followfans/list")
    Call<FollowFansBean> followfans(@Body RequestBody body);



    @GET("leaderboardcontroller/getIncomeList/{todayType}")
    Call<RankingBean> getIncomeList(@Path("todayType") String todayType);


    @GET("leaderboardcontroller/getAwardsRanking/{rankType}")
    Call<RankingBean> getAwardsRanking(@Path("rankType") String rankType);


    @GET("leaderboardcontroller/getPopularityRankList/{today}")
    Call<RankingBean> getPopularityRankList(@Path("today") String today);


    @GET("questionbank/getQuestionBank")
    Call<QuestionBankBean> getQuestionBank();




    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("questionbank/getUserAnswers")
    Call<BaseBean> getUserAnswers(@Body RequestBody body);


    @GET("course/courseLabelList")
    Call<CourseLabelListBean> courseLabelList();


    @GET("course/queryVideoListByLable/{lableId}")
    Call<QueryVideoListByLableBean> queryVideoListByLable(@Path("lableId") String lableId,@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    @GET("course/getCourseInfo/{id}")
    Call<CourseInfoBean> queryVideoListByLable(@Path("id")String lableId);

    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("news/getNewInfo")
    Call<NewInfoBean> getNewInfo(@Body RequestBody body);


    @GET("growroad/getMonitorInfo")
    Call<MonitorInfoBean> getMonitorInfo();



    @GET("videoExchange/getAllVideoRedemption")
    Call<BaseBean> getAllVideoRedemption();

    @GET("videoExchange/getHeat")
    Call<HeatBean> getHeat();


    @GET("videos/getVideoList")
    Call<VideoListBean> getVideoList(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);



    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("memberInvite/getInvitePagelist")
    Call<InviteBean> getInvitePagelist(@Body RequestBody body);

    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("video/getUploadSignature")
    Call<BaseBean> getUploadSignature();


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("dynamic/member")
    Call<BaseBean> member(@Body RequestBody body);


    @GET("membercreditapplication/creditToBalance/{creditNum}")
    Call<BaseBean> creditToBalance(@Path("creditNum") String creditNum);

    @GET("membercreditapplication/creditToKnowCoin/{knowlCoinNum}")
    Call<BaseBean> creditToKnowCoin(@Path("knowlCoinNum") String creditNum);



    @GET("membercreditapplication/creditToBalanceNeedMedalKnow/{creditNum}")
    Call<BaseBean> creditToBalanceNeedMedalKnow(@Path("creditNum") String creditNum);

    @GET("task/list")
    Call<TaskBean> tasklist();

    @GET("task/reward")
    Call<BaseBean> reward();


    @GET("blindbox/blindboxBuyInfo/{boxid}")
    Call<BlindboxBuyInfoBean> blindboxBuyInfo(@Path("boxid") String boxid);


    @GET("blindbox/openBlindbox/{boxid}")
    Call<BaseBean> openBlindbox(@Path("boxid") String boxid);

    @GET("fragment/getMemberFragmentInfo")
    Call<MemberFragmentInfoBean> getMemberFragmentInfo();


    @Headers({"Content-Type: application/json", "Accept: application/json"})
    @POST("fragment/getMemberFragmentRecord")
    Call<MemberFragmentRecordBean> getMemberFragmentRecord(@Body RequestBody body);



}
